/* eslint-disable @typescript-eslint/no-var-requires */
const bodyParser = require('body-parser')
// const mockServer = require('./src/utils/mock/server');
const { NODE_ENV, VUE_APP_PORT, VUE_APP_MOCK } = process.env;
module.exports = {
    publicPath: '/',
    outputDir: 'dist1',
    productionSourceMap: false,
    devServer: {
        open: true,
        port: VUE_APP_PORT || 8000,
        // 配置反向代理
        proxy: {
            '/zjh': {
                target: 'http://127.0.0.1:6001', // 你请求的第三方接口
                ws: true,
                secure: false,//如果是https接口，需要配置这个参数
                // 在本地会创建一个虚拟服务端，然后发送请求的数据，
                //并同时接收请求的数据，这样服务端和服务端进行数据的交互就不会有跨域问题
                changeOrigin: true,
                pathRewrite: {// 路径重写，
                    // 替换target中的请求地址，
                    //也就是说以后你在请求http://api.douban.com/v2/XXXXX这个地址的时候直接写成/api即可
                    '^/zjh': ''
                }
            },
            '/laofan': {
                target: 'http://39.108.132.239:7010',
                ws: true,
                changeOrigin: true,
                pathRewrite: {
                    '^/laofan': ''
                }
            },
            '/fileTest': {
                target: 'https://jsonplaceholder.typicode.com/posts/',
                ws: true,
                changeOrigin: true,
                pathRewrite: {
                    '^/fileTest': ''
                }
            }
            // '/foo': {
            //   target: '<other_url>'
            // }
        },
        // before: function(app, server) {
        //     if(NODE_ENV === 'development' && VUE_APP_MOCK === 'true') {
        //         // parse app.body
        //         // https://expressjs.com/en/4x/api.html#req.body
        //         // create application/json parser
        //         app.use(bodyParser.json());
        //         // create application/x-www-form-urlencoded parser
        //         app.use(bodyParser.urlencoded({ extended: false}));
        //         //  mockServer(app);            
        //     }            
        // }
    },
    // 修改webpack的配置
    configureWebpack: {
        devtool: '#eval-source-map'
    },
    chainWebpack (config) {
        config.module.rule('pug')
            .test(/\.pug$/)
            .use('pug-html-loader')
            .loader('pug-html-loader')
            .end();

        // 内置的 svg Rule 添加 exclude
        config.module
            .rule('svg')
            .exclude.add(/iconsvg/)
            .end();

        // 添加 svg-sprite-loader Rule
        config.module
            .rule('svg-sprite-loader')
            .test(/.svg$/)
            .include.add(/iconsvg/)
            .end()
            .use('svg-sprite-loader')
            .loader('svg-sprite-loader');

        // 添加 svgo Rule
        config.module
            .rule('svgo')
            .test(/.svg$/)
            .include.add(/iconsvg/)
            .end()
            .use('svgo-loader')
            .loader('svgo-loader')
            .options({
                // externalConfig 配置特殊不是相对路径，起始路径是根目录
                externalConfig: './src/assets/iconsvg/svgo.yml',
            });
        if (process.env.NODE_ENV === 'production') {
            config.externals({
                'vue': 'Vue',
                'vuex': 'Vuex',
                'vue-router': 'VueRouter',
                'axios': 'axios',
                'element-plus': 'ElementPlus',
                'echarts': 'Echarts'
            })
        }
    }


}